package edu.ynu.se.xiecheng.achitectureclass.soildata.dao;

import edu.ynu.se.xiecheng.achitectureclass.common.dao.LogicDAO;
import edu.ynu.se.xiecheng.achitectureclass.device.entity.Device;
import edu.ynu.se.xiecheng.achitectureclass.soildata.entity.BaseSensorData;
import org.springframework.data.repository.NoRepositoryBean;

import java.util.Date;
import java.util.List;

/**
 * 传感器数据基础DAO接口
 * @param <T> 传感器数据实体类型
 */
@NoRepositoryBean
public interface SensorDataDAO<T extends BaseSensorData> extends LogicDAO<T, Long> {
    /**
     * 查询指定时间范围内的设备数据
     * @param device 设备实体
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 按时间升序排序的数据列表
     */
    List<T> findByDeviceAndCreateTimeBetweenOrderByCreateTimeAsc(Device device, Date startTime, Date endTime);
    
    /**
     * 获取设备的最新数据
     * @param device 设备实体
     * @return 最新的数据记录
     */
    T findFirstByDeviceOrderByCreateTimeDesc(Device device);
} 